package room

type Common struct {
	CreateTime string `gorm:"column:create_time" json:"createTime"`
	UpdateTime string `gorm:"column:update_time" json:"updateTime"`
}

type Room struct {
	Db
	Common
}

type Db struct {
	Id              int    `gorm:"column:id" json:"id"`                            // ID
	PlaceId         int    `gorm:"column:place_id" json:"placeId"`                 // 网点ID
	TypeId          int    `gorm:"column:type_id" json:"typeId"`                   // 房间类型ID
	DiscountsAmount int    `gorm:"column:discounts_amount" json:"discountsAmount"` // 优惠金额 单位：分
	Status          uint8  `gorm:"column:status" json:"status"`                    // 状态 1-空闲 2-已入住 3-整理中 4-禁用
	Level           uint8  `gorm:"column:level" json:"level"`                      // 楼层
	Sort            uint8  `gorm:"column:sort" json:"sort"`                        // 排序
	DeviceSn        string `gorm:"column:device_sn" json:"deviceSn"`               // 设备编号
	WifiName        string `gorm:"column:wifi_name" json:"wifiName"`               // WIFI
	WifiPassword    string `gorm:"column:wifi_password" json:"wifiPassword"`       // WIFI密码
	Room            string `gorm:"column:room" json:"room"`                        // 房间号
}

func (m *Db) TableName() string {
	return "room"
}

type Type struct {
	TypeDb
	Common
}

type TypeDb struct {
	Id              int    `gorm:"column:id" json:"id"`                            // ID
	PlaceId         int    `gorm:"column:place_id" json:"placeId"`                 // 网点ID
	Price           int    `gorm:"column:price" json:"price"`                      // 价格 单位：分
	DiscountsAmount int    `gorm:"column:discounts_amount" json:"discountsAmount"` // 优惠金额 单位：分
	MinArea         int    `gorm:"column:min_area" json:"minArea"`                 // 面积 单位：m
	MaxArea         int    `gorm:"column:max_area" json:"maxArea"`                 // 面积 单位：m
	InPeopleNum     uint8  `gorm:"column:in_people_num" json:"inPeopleNum"`        // 可入住人数
	WindowType      uint8  `gorm:"column:window_type" json:"windowType"`           // 是否有窗户 1-有 2-无 3-部分有
	Status          uint8  `gorm:"column:status" json:"status"`                    // 状态 1-启用 2-禁用
	TypeName        string `gorm:"column:type_name" json:"typeName"`               // 类型名称
	Icon            string `gorm:"column:icon" json:"icon"`                        // 商品图标
	ImgList         string `gorm:"column:img_list" json:"imgList"`                 // 商品图标
	Service         string `gorm:"column:service" json:"service"`                  // 服务描述
	Equipment       string `gorm:"column:equipment" json:"equipment"`              // 设施描述
}

func (m *TypeDb) TableName() string {
	return "room_type"
}

type Order struct {
	OrderDb
	Common
	PayTime    string `gorm:"column:pay_time" json:"payTime"`
	FinishTime string `gorm:"column:finish_time" json:"finishTime"`
}

type OrderDb struct {
	Id                      int    `gorm:"column:id" json:"id"`
	MemberId                int    `gorm:"column:member_id" json:"memberId"`
	UserId                  int    `gorm:"column:user_id" json:"userId"`
	PlaceId                 int    `gorm:"column:place_id" json:"placeId"`
	RoomId                  int    `gorm:"column:room_id" json:"roomId"`
	TypeId                  int    `gorm:"column:type_id" json:"typeId"`
	DiscountsId             int    `gorm:"column:discounts_id" json:"discountsId"`
	DiscountsPlatformAmount int    `gorm:"column:discounts_platform_amount" json:"discountsPlatformAmount"`
	DiscountsAmount         int    `gorm:"column:discounts_amount" json:"discountsAmount"`
	Price                   int    `gorm:"column:price" json:"price"`
	Amount                  int    `gorm:"column:amount" json:"amount"`
	DayLen                  int    `gorm:"column:day_len" json:"dayLen"`
	NotificationId          int    `gorm:"column:notification_id" json:"notificationId"`
	Status                  uint8  `gorm:"column:status" json:"status"`               // 订单状态 1-待支付 2-待守约 3-已撤消 4-已支付待消费 5-订单完成 6-已撤消
	PayType                 uint8  `gorm:"column:pay_type" json:"payType"`            // 支付类型 1-微信支付 2-微信信用分 3-支付宝 4-支付宝信用分
	ThirdTradeNo            string `gorm:"column:third_trade_no" json:"ThirdTradeNo"` // 第三方 订单编号
	TradeNo                 string `gorm:"column:trade_no" json:"tradeNo"`            // 订单编号
	DeviceSn                string `gorm:"column:device_sn" json:"deviceSn"`          // 设备编号
	UserName                string `gorm:"column:user_name" json:"userName"`          // 商户名称
	PlaceName               string `gorm:"column:place_name" json:"placeName"`        // 网点名称
	MemberName              string `gorm:"column:member_name" json:"memberName"`      // 会员昵称
	MemberPhone             string `gorm:"column:member_phone" json:"memberPhone"`    // 会员手机
	Message                 string `gorm:"column:message" json:"message"`             // 备注信息
	InTime                  string `gorm:"column:in_time" json:"inTime"`
	LeaveTime               string `gorm:"column:leave_time" json:"leaveTime"`
}

func (m *OrderDb) TableName() string {
	return "room_orders"
}

type OrderResult struct {
	Id        int    `gorm:"column:id" json:"id"`
	MemberId  int    `gorm:"column:member_id" json:"memberId"`
	UserId    int    `gorm:"column:user_id" json:"userId"`
	PlaceId   int    `gorm:"column:place_id" json:"placeId"`
	RoomId    int    `gorm:"column:room_id" json:"roomId"`
	TypeId    int    `gorm:"column:type_id" json:"typeId"`
	PlaceName string `gorm:"column:place_name" json:"placeName"`
	DeviceSn  string `gorm:"column:device_sn" json:"deviceSn"`
	Room      string `gorm:"column:room" json:"room"`
	InTime    string `gorm:"column:in_time" json:"inTime"`
	LeaveTime string `gorm:"column:leave_time" json:"leaveTime"`
	Phone     string `gorm:"column:phone" json:"Phone"`
}

type RoomListByPlaceId struct {
	Room     string `gorm:"column:room" json:"room"`
	DeviceSn string `gorm:"column:device_sn" json:"deviceSn"`
	PlaceId  int    `gorm:"column:place_id" json:"placeId"`

	WifiName     string `gorm:"column:wifi_name" json:"wifiName"`
	WifiPassword     string `gorm:"column:wifi_password" json:"wifiPassword"`
}